************************************** * AUSGABE VON STRINGS V1.1 * * * * ASSEMBLER: ATMAS-II P. FINZEL 87 * ************************************** * ZEIGER EQU $80 ;ZEROPAGE-REGISTER OFFSET EQU $82 ;ZAEHLER * RTCLOK EQU $12 ;UHR COLCRS EQU $55 ;CURSORSPALTE ROWCRS EQU $54 ;CURSORZEILE CRSINH EQU $2F0 ;1=CURSOR UNSICHTBAR EOL EQU $96 ;END-OF-LINE ZEICHEN * * ADRESSEN DER HANDLERTABELLE IM ROM * EDITDV EQU $E400 ;EDITOR-HANDLER * * START AN ADRESSE $A800 IM MONITOR * ORG $A800 * * BEISPIEL JSR PRINT DFB 5,10 ASC "DAS IST EIN BEISPIEL" DFB EOL JSR WARTEN * * JETZT REVERS AUSDRUCKEN * JSR PRINT DFB 5,10 ASC /DAS IST EIN BEISPIEL/ DFB EOL JSR WARTEN JMP BEISPIEL * * EIN WEILCHEN WARTEN * WARTEN LDX #15 WART1 LDA RTCLOK+2 HAT UHR SCHON WART2 CMP RTCLOK+2 WEITERGEZAEHLT? BEQ WART2 NEIN -> DEX BNE WART1 RTS ************************************* * DAS PRINT-UNTERPROGRAMM * ************************************* PRINT PLA AUFRUFADRESSE STA ZEIGER HOLEN PLA IN ZEIGER MERKEN STA ZEIGER+1 LDY #1 CURSOR ABSCHALTEN STA CRSINH LDA (ZEIGER),Y STA COLCRS ANFANGSSPALTE INY LDA (ZEIGER),Y STA ROWCRS ANFANGSZEILE STY OFFSET ZAEHLER MERKEN PRINT1 INC OFFSET ZAEHLER ERHOEHEN LDY OFFSET LDA (ZEIGER),Y ZEICHEN HOLEN CMP #EOL SCHON LETZTES? BEQ PRTEND JA - > JSR SCROUT SONST AUSGEBEN JMP PRINT1 UND WEITER ==> PRTEND CLC NEUE RUECKSPRUNG- LDA ZEIGER ADRESSE BERECHNEN ADC OFFSET (ALTE ADRESSE STA ZEIGER PLUS ZAEHLER) LDA ZEIGER+1 MSB ADC #0 PHA RUECKSPRUNGADRESSE LDA ZEIGER ZURUECK AUF STACK PHA RTS ************************************** * EIN ZEICHEN AUSGEBEN * ************************************** SCROUT TAX ZEICHEN RETTEN LDA EDITDV+7 PHA ANFANGSADRESSE-1 LDA EDITDV+6 DER SCROUT-ROUTINE PHA IM OS-ROM TXA ZEICHEN ZURUECK RTS INDIREKTER SPRUNG